home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / mint / l_1199 / 941 < prev    next >
Encoding:
Internet Message Format  |  1994-08-27  |  3.4 KB

  1. From: shenson@nyx10.cs.du.edu (Stephen Henson)
  2. From: Stephen Usher <Stephen.Usher@earth.ox.ac.uk>
  3. Date: Sat, 22 Jan 94 06:34:39 MST
  4. Date: Sat, 22 Jan 1994 12:18:59 +0000 (GMT)
  5. Subject: Forwarded ....
  6. Subject: Re: Binary config and fork() ...
  7. Date: Sat, 22 Jan 94 06:34:39 MST
  8. From: shenson@nyx10.cs.du.edu (Stephen Henson)
  9. Message-Id: <9401221334.AA08600@nyx10.cs.du.edu>
  10. X-Disclaimer: Nyx is a public access Unix system run by the University
  11.     of Denver.  The University has neither control over nor
  12.     responsibility for the opinions or correct identity of users.
  13. To: mint@terminator.rs.itd.umich.edu
  14. Subject: Forwarded ....
  15.  
  16.     id AA25893; Sat, 22 Jan 94 05:17:09 MST
  17. X-Disclaimer: Nyx is a public access Unix system run by the University
  18.     of Denver.  The University has neither control over nor
  19.     responsibility for the opinions or correct identity of users.
  20. From: Stephen Usher <Stephen.Usher@earth.ox.ac.uk>
  21. Message-Id: <2264.9401221219@elvis.earth.ox.ac.uk>
  22. Subject: Re: Binary config and fork() ...
  23. To: shenson@nyx10.cs.du.edu (Stephen Henson)
  24. Date: Sat, 22 Jan 1994 12:18:59 +0000 (GMT)
  25. In-Reply-To: <9401211942.AA05263@nyx10.cs.du.edu> from "Stephen Henson" at Jan 21, 94 12:42:48 pm
  26. Mime-Version: 1.0
  27.  
  28. >    Yes you can use the symbol table to implement binary configuration,
  29. >that's what my (unreleased) Minixfs binary config program does. It also why
  30. >I originally wrote nlist(). I think with arrays you can't really increase
  31. >their length safely by fiddling with the reloc table (what if the compiler
  32. >or code uses an offset as an optimisation to acces a later variable?). Anyway
  33. >I've written a short file which gives the basic idea and I'll send it when
  34. >I've checked out a couple of sample programs.
  35. >    Re non-blocking fork(). I think this could cause problems. At present
  36. >(or as far as I can gather without mem protection on my STE) the virtual
  37. >addresses are always the same as the physical ones. If you change this (and
  38. >it is compulsory for fork()) then you get DMA problems. E.g. suppose I make
  39. >a call to Fread. What address should the OS pass down? If the data is to be read
  40. >directly into the buffer via DMA then you need to pass the physical address, if
  41. >it goes via a cache you need the virtual address. If the hard disk software
  42. >uses an internal cache then it's even more fun ...
  43.  
  44. Hmm... I've never played with DMA myself, but I know the problem you're
  45. talking about.
  46.  
  47. Concidering that hard disk software will be run before MiNT starts up it
  48. will always run in a real address space. All we need to do to stop conflicts
  49. in the future is to (a) compartmentalise DMA using kernel routines, letting
  50. the kernel do all the address translations, and possibly remapping pages so
  51. as to create a contiguous memory block, and (b) add a new memory allocation
  52. call, say, dmamalloc() which will create a contigous memory region and
  53. return a physical address. I admit this would break programs which were not
  54. virtual-memory aware which go straight for the hardware.
  55.  
  56. The main problem I see is catering for the ST{F,FM,M} series machines, those
  57. with mere 68000's. The only way I can see a non-blocking fork being
  58. implemented is via shadowing, as used in Minix.. and does that slow the
  59. machine down or what?
  60.  
  61. >Steve.
  62.  
  63. Steve
  64.  
  65. -- 
  66. ---------------------------------------------------------------------------
  67. Computer Systems Administrator, Dept. of Earth Sciences, Oxford University.
  68. E-Mail: steve@uk.ac.ox.earth (JANET) steve@earth.ox.ac.uk (Internet).
  69. Tel:- Oxford (0865) 282110 (UK) or +44 865 282110 (International).
  70.